Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Portable Anymap</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Portable_Anymap"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Portable_Anymap rootpage-Portable_Anymap skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Portable Anymap</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Portable Anymap</b> (abgekürzt <b>PNM</b>) ist eine Familie von einfachen <a href="Dateiformat" title="Dateiformat">Dateiformaten</a> zur Speicherung von <a href="Rastergrafik" title="Rastergrafik">Rastergrafiken</a>.
</p><p>Zu den PNM-Formaten gehören die Dateiformate:
</p>
<ul><li><b>Portable Bitmap</b> (PBM),</li>
<li><b>Portable Graymap</b> (PGM) und</li>
<li><b>Portable Pixmap</b> (PPM)</li></ul>
<p>Der Aufbau des Dateikopfs aller drei Dateiformate ist identisch. Die Bilddaten unterscheiden sich im Wertebereich bzw. der <a href="Wortbreite" class="mw-redirect" title="Wortbreite">Wortbreite</a> und können als dezimal kodierte Werte im <a href="ASCII" class="mw-redirect" title="ASCII">ASCII</a>-Format oder <a href="Bin%C3%A4rcode" title="Binärcode">binär kodiert</a> vorliegen.
</p>

<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Die PNM-Formate wurden in den 1980er Jahren zur einfachen Übertragung von Bitmaps zwischen verschiedenen Rechnersystemen entwickelt. Zusammen mit dem später entwickelten Dateiformat PAM <i>(Portable Arbitrary Map)</i> bilden die PNM-Formate die Familie der Netpbm-Formate.
</p>
<div class="mw-heading mw-heading2"><h2 id="Dateiformat">Dateiformat</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Kopfdaten">Kopfdaten</h3></div>
<p>Der Dateikopf ist folgendermaßen aufgebaut:
</p>
<ol><li><a href="Magische_Zahl_(Informatik)" title="Magische Zahl (Informatik)">Magischer Wert</a>, 2 Byte: Kennzeichnet das Format der Bilddaten</li>
<li>Leerraum</li>
<li>Breite des Bilds in Pixeln (dezimal in ASCII kodiert)</li>
<li>Leerraum</li>
<li>Höhe des Bilds in Pixeln (dezimal in ASCII kodiert)</li>
<li>Leerraum</li></ol>
<p>Bei Graustufen- (PGM) und Farbbildern (PPM) zusätzlich noch:
</p>
<ol><li>Maximalwert für die Helligkeit (dezimal in ASCII kodiert)</li>
<li>Leerraum</li></ol>
<p>Gültiger <a href="Leerraum" title="Leerraum">Leerraum</a> ist eine Zeichenkette aus einem oder mehreren der folgenden Zeichen: <a href="Leerzeichen" title="Leerzeichen">Leerzeichen</a>, <a href="Tabulatortaste" title="Tabulatortaste">Tabulator</a>, <a href="Wagenr%C3%BCcklauf" title="Wagenrücklauf">Wagenrücklauf</a> (<i>carriage return</i>) und <a href="Zeilenvorschub" title="Zeilenvorschub">Zeilenvorschub</a> (<i>line feed</i>).<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Bei binärer Kodierung der Bilddaten muss der letzte Leerraum am Ende des Dateikopfs aus genau einem Zeichen bestehen.
</p><p>Außerdem können noch Kommentare im Dateikopf untergebracht werden. Ein Kommentar beginnt mit einem <a href="Rautezeichen" title="Rautezeichen">Doppelkreuz</a> (<code>#</code>) und wird durch ein Zeilenvorschub- oder Wagenrücklaufzeichen beendet. Ein Kommentar wird wie Leerraum behandelt.
</p><p>Zulässige Werte für den Dateityp (Magic Number) sind:
</p>
<table class="wikitable" border="1">

<tbody><tr>
<th>Magic Number
</th>
<th>Dateityp
</th>
<th>Kodierung
</th></tr>
<tr>
<td><code>P1</code>
</td>
<td>Portable Bitmap
</td>
<td>ASCII
</td></tr>
<tr>
<td><code>P2</code>
</td>
<td>Portable Graymap
</td>
<td>ASCII
</td></tr>
<tr>
<td><code>P3</code>
</td>
<td>Portable Pixmap
</td>
<td>ASCII
</td></tr>
<tr>
<td><code>P4</code>
</td>
<td>Portable Bitmap
</td>
<td>Binär
</td></tr>
<tr>
<td><code>P5</code>
</td>
<td>Portable Graymap
</td>
<td>Binär
</td></tr>
<tr>
<td><code>P6</code>
</td>
<td>Portable Pixmap
</td>
<td>Binär
</td></tr></tbody></table>
<p>Das später entwickelte, verwandte Format <i>Portable Arbitrary Map</i> beginnt mit der Magic Number P7.
</p>
<div class="mw-heading mw-heading3"><h3 id="Bilddaten">Bilddaten</h3></div>
<p>Auf den Kopfbereich folgen die eigentlichen Bilddaten in Form von Helligkeitswerten der einzelnen Pixel bzw. für jeden Farbkanal eines Pixels, entweder dezimal in ASCII oder binär kodiert. Die Werte werden zeilenweise angegeben, beginnend mit der obersten Pixelzeile, und in einer Zeile von links nach rechts. Die Reihenfolge der Farbwerte eines Pixels ist Rot, Grün, Blau.
</p><p>Zulässige Wertebereiche für die Farb- bzw. Helligkeitswerte sind:
</p>
<table class="wikitable" border="1">

<tbody><tr>
<th>Dateityp
</th>
<th>maximaler Wertebereich
</th>
<th>Bits je Pixel bei Binärkodierung
</th></tr>
<tr>
<td>Portable Bitmap
</td>
<td>0 und 1
</td>
<td>1 Bit
</td></tr>
<tr>
<td>Portable Graymap
</td>
<td>0 … 255 bzw. 0 … 65535
</td>
<td>8 Bit bzw. 16 Bit
</td></tr>
<tr>
<td>Portable Pixmap
</td>
<td>0 … 255 bzw. 0 … 65535
</td>
<td>24 bzw. 48 Bit
</td></tr>
</tbody></table>
<p>Bei Speicherung im ASCII-Format wird jeder Bildpunkt als <a href="Dezimalsystem" title="Dezimalsystem">Dezimalzahl</a> mit einem Byte je Ziffer (ASCII-Code der Ziffer) gespeichert. Vor und nach jedem Wert muss ein Leerraum stehen (z.&nbsp;B. Leerzeichen oder Zeilentrenner). Eine Zeile sollte nicht länger als 70 Zeichen sein.
</p><p>Bei binärer Speicherung folgen die Werte unmittelbar auf den Dateikopf, und zwischen ihnen stehen keine Trennzeichen. Zeilenumbrüche oder andere Textformatierungen sind nicht erlaubt, denn sie würden als Bildpunkte interpretiert.
</p><p>Eine Bitmap belegt für jeden Wert eines Pixels nur ein Bit, also beträgt der Platzbedarf ein Byte je acht Pixel. Innerhalb eines Bytes werden die Werte absteigend angeordnet, also das Bit für das erste Pixel an die höchstwertige Position im ersten Byte. Am Ende einer Zeile (am Rand des Bildes) wird mit Nullen aufgefüllt bis ein Byte vollständig ist. Eine weitere Trennung gibt es nicht, die nächste Zeile schließt unmittelbar an. Ein 1-Bit steht für ein schwarzes und ein 0-Bit für ein weißes Pixel.
</p><p>Bei Graymap oder Pixmap wird ein Helligkeitswert für ein Pixel bzw. einen Farbkanal eines Pixels als ein Byte gespeichert, wenn der Maximalwert kleiner als 256 ist, ansonsten als zwei Byte im <a href="Big_Endian" class="mw-redirect" title="Big Endian">Big-Endian</a>-Format.
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Bitmap_ASCII_kodiert">Bitmap ASCII kodiert</h3></div>
<pre>P1 #Bitmap
# Beispiel für das Bild des Buchstabens „J“
6 10 #Breite des Bildes, Leerstelle, Höhe des Bildes
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0
</pre>
<div class="mw-heading mw-heading3"><h3 id="Bitmap_binär_kodiert"><span id="Bitmap_bin.C3.A4r_kodiert"></span>Bitmap binär kodiert</h3></div>
<pre>P4 #Bitmap binär
# Beispiel für das Bild des Buchstabens „J“
# 0 0 0 0 1 0 0 0 # Byte = 08 (hex)
# 0 0 0 0 1 0 0 0 # Byte = 08 (hex)
# 0 0 0 0 1 0 0 0 # Byte = 08 (hex)
# 0 0 0 0 1 0 0 0
# 0 0 0 0 1 0 0 0
# 0 0 0 0 1 0 0 0
# 1 0 0 0 1 0 0 0
# 0 1 1 1 0 0 0 0
# 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0
#Breite des Bildes, Leerstelle, Höhe des Bildes, danach genau ein Trennzeichen (newline) vor dem binären Teil:
8 10
08 08 08 08 08 08 88 70 00 00 # = 10 Bytes; in dieser Zeile steht jede Zweiergruppe von Hex-Ziffern für ein Byte in der Datei
</pre><p>Dekodiertes Bild: <span typeof="mw:File"></span>
</p><div class="mw-heading mw-heading3"><h3 id="Graymap">Graymap</h3></div>
<pre>P2
# Das Wort „FEEP“ in verschiedenen Graustufen (Beispiel von der Netpbm-Man-Page)
24 7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
</pre>
<p>Dekodiertes Bild: <span class="mw-default-size" typeof="mw:File"></span>
</p>
<div class="mw-heading mw-heading3"><h3 id="Pixmap">Pixmap</h3></div>
<pre>P3
# Ein Farbbild der Größe 3 × 2 Pixel, maximaler Helligkeit 255.
# Darauf folgen die RGB-Tripel.
3 2
255
255 0 0 0 255 0 0 0 255
255 255 0 255 255 255 0 0 0
</pre>
<p>Dekodiertes Bild: <span class="mw-default-size" typeof="mw:File"></span>
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"></span></span></div><b><span class=""><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Netpbm_formats?uselang=de"><span lang="en">Commons</span>: Portable Anymap</a></span></b>&nbsp;– Sammlung von Bildern, Videos und Audiodateien</div>
<ul><li><a rel="nofollow" class="external text" href="http://linux.die.net/man/5/pnm">PNM manpage</a></li></ul>
<ul><li>FileFormat.info: <a rel="nofollow" class="external text" href="http://www.fileformat.info/format/pbm/egff.htm">PBM, PGM, PNM, and PPM File Format Summary</a></li>
<li><a rel="nofollow" class="external text" href="http://netpbm.sourceforge.net/doc/pbm.html">PBM</a></li>
<li><a rel="nofollow" class="external text" href="http://netpbm.sourceforge.net/doc/pgm.html">PGM</a></li>
<li><a rel="nofollow" class="external text" href="http://netpbm.sourceforge.net/doc/ppm.html">PPM</a></li>
<li><a rel="nofollow" class="external text" href="http://netpbm.sourceforge.net/doc/pam.html">PAM</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://netpbm.sourceforge.net/doc/ppm.html">sourceforge.net Fileformate netpbm</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2026-01-09" href="https://de.wikipedia.org/wiki/?title=Portable_Anymap&amp;oldid=263168843">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>